package com.zsk.okhttp;

import java.io.IOException;

import okhttp3.Callback;
import okhttp3.MediaType;

/**
 * application/x-www-form-urlencoded/body提交任务
 * 
 * @author keke
 * @date 2020/04/23
 */
public interface IPostTask {

    /**
     * 同步请求
     * 
     * @return
     * @throws IOException
     */
    ResData run() throws IOException;

    /**
     * 异步请求
     * 
     * @param callback
     */
    void run(Callback callback);

    /**
     * 添加头
     * 
     * @param name
     * @param value
     * @return
     */
    IPostTask addHeader(String name, String value);

    /**
     * 添加url参数
     * 
     * @param name
     * @param value
     * @return
     */
    IPostTask addQueryParam(String name, String value);

    /**
     * 添加简json
     * 
     * @param name
     * @param value
     * @return
     */
    IPostTask addJson(String name, Object value);

    /**
     * 添加json body
     * 
     * @param body
     * @return
     */
    IPostTask addBody(String body);

    /**
     * 添加自动以body
     * 
     * @param type
     * @param body
     * @return
     */
    IPostTask addBody(MediaType type, String body);

    /**
     * 添加表单
     * 
     * @param name
     * @param value
     * @return
     */
    IPostTask addFormData(String name, String value);

}
